package com.aloda.ojcommon.constant;

/**
 * @Author aloda
 * @Date 2025/4/20 14:25
 */
public class ExceptionConstant {

    // 账号相关异常信息
    public static final String ACCOUNT_ERROR = "账号格式不正确";
    public static final String PASSWORD_ERROR = "密码格式不正确";
    public static final String ACCOUNT_NOT_UNIQUE = "账号已注册";
    public static final String REGISTER_FAIL = "注册失败";
    public static final String PHONE_ERROR = "手机号错误";
    public static final String PHONE_REGISTERED = "手机号已注册";
    public static final String EMAIL_REGISTERED = "邮箱已注册";
    public static final String ACCOUNT_BANNED = "账号被禁用";

    // 用户状态相关异常信息
    public static final String USER_BANNED = "该用户账号已被封禁，暂时无法访问";
    public static final String ACCOUNT_EX = "该账号状态异常，请联系管理员";
    public static final int ACCOUNT_BANNED_CODE = 400051;
    public static final int ACCOUNT_EX_CODE = 400050;

    // 登录相关异常信息
    public static final String LOGIN_FAIL = "用户名或密码错误";
    public static final String USER_NOT_EXIST = "用户不存在";

    // 用户名相关异常信息
    public static final String USERNAME_ERROR = "用户名错误";

    // 操作频率相关异常信息
    public static final String OPERATE_FREQUENTLY = "操作频繁";

    // 验证码相关异常信息
    public static final String VERIFY_TIMEOUT = "图形验证码到期";
    public static final String VERIFY_ERROR = "验证码错误";
    public static final String PHONE_CODE_ERROR = "短信验证码错误";
    public static final String EMAIL_CODE_ERROR = "邮箱验证码错误";
    public static final String EMAIL_VERIFY_TIMEOUT = "邮箱验证码已到期";
    public static final String EMAIL_SEND_ERROR = "邮件发送失败";

    // 数据格式相关异常信息
    public static final String TAGS_LIST_EMPTY = "标签列表为空";
    public static final String NICKNAME_ERROR = "昵称格式不正确";
    public static final String EMAIL_ERROR = "邮箱格式不正确";
    public static final String GENDER_ERROR = "性别数据错误";
    public static final String DESC_ERROR = "个人简介格式不正确";

    // 文件上传相关异常信息
    public static final String UPLOAD_ABNORMAL = "上传失败";
    public static final String UPLOAD_ERROR = "上传格式错误";

    // 用户权限和状态相关异常信息
    public static final String USER_ROLE_ERROR = "用户权限错误";
    public static final String USER_STATUS_ERROR = "用户状态错误";

    // 账号封禁相关异常信息
    public static final String BANNED_ERROR = "无法封禁自身账号";

    // 题目相关异常信息
    public static final String QUESTION_TITLE_TOO_LONG = "题目标题长度超过限制";
    public static final String QUESTION_CONTENT_TOO_LONG = "题目内容长度超过限制";
    public static final String QUESTION_ANSWER_TOO_LONG = "题目答案长度超过限制";
    public static final String JUDGE_CASE_INPUT_TOO_LONG = "判题用例输入长度超过限制";
    public static final String JUDGE_CASE_OUTPUT_TOO_LONG = "判题用例输出长度超过限制";
    public static final String JUDGE_CONFIG_TOTAL_SIZE_EXCEEDS_LIMIT = "判题配置总大小超过限制";
    public static final String QUESTION_CHECK_DTO_CANNOT_BE_EMPTY = "题目校验对象不能为空";
    public static final String TAGS_LIST_CANNOT_BE_EMPTY = "标签列表不能为空";
    public static final String JUDGE_CASE_LIST_CANNOT_BE_EMPTY = "判题用例列表不能为空";
    public static final String JUDGE_CONFIG_CANNOT_BE_EMPTY = "判题配置不能为空";
    public static final String JUDGE_CASE_OBJECT_CANNOT_BE_EMPTY = "判题用例对象不能为空";
    public static final String TIME_LIMIT_CANNOT_BE_EMPTY_OR_NEGATIVE = "时间限制不能为空且不能为负数";
    public static final String MEMORY_LIMIT_CANNOT_BE_EMPTY_OR_NEGATIVE = "内存限制不能为空且不能为负数";
    public static final String STACK_LIMIT_CANNOT_BE_EMPTY_OR_NEGATIVE = "堆栈限制不能为空且不能为负数";
    public static final String INPUT_CANNOT_BE_EMPTY_OR_TOO_LONG = "输入用例不能为空且长度不能大于规定值";
    public static final String OUTPUT_CANNOT_BE_EMPTY_OR_TOO_LONG = "输出用例不能为空且长度不能大于规定值";
    public static final String TITLE_CANNOT_BE_EMPTY_OR_TOO_LONG = "题目标题不能为空且长度不能大于规定值";
    public static final String CONTENT_CANNOT_BE_EMPTY_OR_TOO_LONG = "题目内容不能为空且长度不能大于规定值";
    public static final String ANSWER_CANNOT_BE_EMPTY_OR_TOO_LONG = "题目答案不能为空且长度不能大于规定值";
    public static final String TAG_LIST_LENGTH_OUT = "标签列表长度超出限制";
    public static final String PROMPT_CODE_LENGTH_OUT = "预设提示代码长度超出限制";


    public static final String QUESTION_IS_NOT_EXIST = "题目不存在";

    public static final String QUESTION_CODE_EMPTY_OR_TOO_LONG = "题目代码不能为空且不能超过最大长度";
    public static final String INVALID_PROGRAMMING_LANGUAGE = "未选择正确的编程语言";
    public static final String QUESTION_SUBMIT_IS_NOT_EXIST = "题目提交记录不存在";
    public static final String QUESTION_SUBMIT_IS_NOT_WAITING = "该提交记录已完成判题";
    public static final String QUESTION_SUBMIT_STATUS_UPDATE_ERROR = "题目提交记录状态更新错误";

    public static final String CODE_SANDBOX_ERROR = "代码沙箱异常";
    public static final String JUDGE_ERROR = "判题异常";
}
